package gp02.uniandes.dialgo.mundo;

public class Conexion
{
    // ---------------------------------------------------------------------------
    // ATRIBUTOS
    // ---------------------------------------------------------------------------
    /**
     * Atributo que modela la ciudad origen de la ruta
     */
    private Ciudad ciudadOrigen;
    /**
     * Atributo que modela la ciudad destino de la ruta
     */
    private Ciudad ciudadDestino;
    /**
     * Atributo que modela la demora en llegar a destino incluyendo espera en origen
     */
    private int tiempoDemora;
    // ---------------------------------------------------------------------------
    // CONSTRUCTOR
    // ---------------------------------------------------------------------------
    /**
     * Constructor de la clase por defecto sin parametros
     */
    public Conexion( )
    {

    }
    /**
     * Constructor de la clase por ciudadOrigen y ciudadDestino
     * @param ciudadOrigen La ciudad origen de la conexion
     * @param ciudadDestino La ciudad destino de la conexion
     */
    public Conexion( Ciudad ciudadOrigen, Ciudad ciudadDestino )
    {
        this.ciudadOrigen = ciudadOrigen;
        this.ciudadOrigen.setCiudadSiguiente( ciudadDestino );
        this.ciudadDestino = ciudadDestino;
        this.tiempoDemora = ciudadOrigen.getTiempoEspera( ) + ciudadOrigen.getDemora( );
    }
    // ---------------------------------------------------------------------------
    // METODOS
    // ---------------------------------------------------------------------------
    /**
     * Metodo que retorna la ciudad origen
     * @return ciudadOrigen La ciudad origen de la conexion
     */
    public Ciudad getCiudadOrigen( )
    {
        return ciudadOrigen;
    }
    /**
     * Metodo que asigna la ciudad origen
     * @param ciudadOrigen La nueva ciudad origen de la conexion
     */
    public void setCiudadOrigen( Ciudad ciudadOrigen )
    {
        this.ciudadOrigen = ciudadOrigen;
    }
    /**
     * Metodo que retorna la ciudad destino
     * @return ciudadOrigen La ciudad destino de la conexion
     */
    public Ciudad getCiudadDestino( )
    {
        return ciudadDestino;
    }
    /**
     * Metodo que asigna la ciudad destino
     * @param ciudadOrigen La nueva destino origen de la conexion
     */
    public void setCiudadDestino( Ciudad ciudadDestino )
    {
        this.ciudadDestino = ciudadDestino;
    }
    /**
     * Metodo que retorna el tiempo de demora para llegar a destino
     * @return tiempoDemora El tiempo de demora en llegar a destino
     */
    public int getTiempoDemora( )
    {
        return tiempoDemora;
    }
    /**
     * Metodo que asigna el tiempo de demora para llegar a destino
     * @param tiempoDemora El nuevo tiempo de demora en llegar a destino
     */
    public void setTiempoDemora( int tiempoDemora )
    {
        this.tiempoDemora = tiempoDemora;
    }
    /**
     * Metodo que retorna la demora de la ruta
     * @return tiempoDemora La demora del viaje a traves de la ruta
     */
    public int darPeso( )
    {
        return tiempoDemora;
    }
}
